home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / HexEdit 1.21 / ~Project / Source / AboutBox.c next >
Encoding:
C/C++ Source or Header  |  1997-02-02  |  1.7 KB  |  74 lines  |  [TEXT/CWIE]

  1. /************************************************************************************
  2.  * AboutBox.c
  3.  *
  4.  * from HexEdit, a simple hex editor
  5.  * copyright 1993, Jim Bumgardner
  6.  *
  7.  ************************************************************************************/
  8.  
  9. #include "HexEdit.h"
  10.  
  11. pascal    Boolean MyAboutFilter ( DialogPtr, EventRecord *, short *);
  12. long    gStartTime;
  13.  
  14. #define AboutDLOG        130
  15. #define AutoCloseTime    10*60        //LR :double display time
  16.  
  17. void HexEditAboutBox( void )    //LR 960606 :fix warnings
  18. {
  19.     GrafPtr            savePort;
  20.     DialogPtr        dp;
  21.     short            itemHit;
  22.     VersRecHndl        vr;
  23.     StringPtr        myVersStr;
  24.     ModalFilterUPP filterUPP = NewModalFilterProc( MyAboutFilter );    //LR :see below
  25.     
  26.     if ((vr = (VersRecHndl) GetResource('vers',1)) != NULL) {
  27.         HLock((Handle) vr);
  28.         myVersStr = (StringPtr) (((unsigned long) &(**vr).shortVersion[1]) + 
  29.                           ((**vr).shortVersion[0]));
  30.     }
  31.     else
  32.         myVersStr = "\p???";
  33.  
  34.     ParamText(myVersStr,"\p","\p","\p");
  35.     
  36.     GetPort(&savePort);
  37.     dp = GetNewDialog(AboutDLOG, NULL, (WindowPtr) -1L);
  38.     gStartTime = TickCount();
  39.  
  40.     ModalDialog( filterUPP, &itemHit );        //LR :Universal Headers (& PPC) compliant
  41.  
  42.     DisposeDialog(dp);
  43.     SetPort(savePort);
  44.     if (vr)
  45.     {
  46.         HUnlock((Handle) vr);
  47.         ReleaseResource((Handle) vr);
  48.     }
  49. }
  50.  
  51. pascal Boolean MyAboutFilter(DialogPtr dp, EventRecord *ep, short *itemHit)
  52. {
  53. #pragma unused (itemHit)    //LR :fix warnings
  54.  
  55.     switch (ep->what) {
  56.       case mouseDown:        // For About Box - trap all events.
  57.       case keyDown:
  58.       case autoKey:
  59.           return true;
  60.         break;
  61.       case updateEvt:
  62.           SetPort(dp);
  63.           TextFont(1);
  64.           TextSize(9);
  65.         break;
  66.       case nullEvent:
  67.           if (TickCount() - gStartTime > AutoCloseTime)
  68.               return true;
  69.       default:
  70.           break;
  71.     }
  72.     return false;
  73. }
  74.